package cn.shengchao.examstar.ai.application.command;

import lombok.Builder;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 创建学习计划命令
 * 封装创建学习计划所需的参数
 */
@Data
@Builder
public class CreateStudyPlanCommand {
    
    /**
     * 用户ID
     */
    @NotBlank(message = "用户ID不能为空")
    private String userId;
    
    /**
     * 类目类型
     */
    @NotBlank(message = "类目类型不能为空")
    private String specificationType;
    
    /**
     * 掌握程度代码
     */
    @NotBlank(message = "掌握程度不能为空")
    private String degreeOfMasteryCode;
    
    /**
     * 创建静态工厂方法
     */
    public static CreateStudyPlanCommand of(String userId, String specificationType, String degreeOfMasteryCode) {
        return CreateStudyPlanCommand.builder()
            .userId(userId)
            .specificationType(specificationType)
            .degreeOfMasteryCode(degreeOfMasteryCode)
            .build();
    }
}